package leetcode;

/**
 * The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
 * Given two integers x and y, calculate the Hamming distance.
 * Example:
 * Input: x = 1, y = 4
 * Output: 2
 * Explanation:
 * 1   (0 0 0 1)
 * 4   (0 1 0 0)
 *        ↑   ↑
 * The above arrows point to positions where the corresponding bits are different.
 */
public class HammingDistance {
    public static void main(String[] args) {
        System.out.println(hammingDistance(1,4));
    }

    private static int hammingDistance(int x, int y) {
        int i =  x^y;
        int count = 0;

        while (i != 0){
            if(i % 2 == 1){
                count++;
            }
            i = i >> 1;
        }
        return count;
    }
}
